package sis.util;/*
 * @auther 顶风少年
 * @mail dfsn19970313@foxmail.com
 * @date 2019-07-31 19:38
 * @notify
 * @version 1.0
 */

import java.util.List;

public class StringUtil {
    //查询 小字符串 在大字符 中出现了几次
    public static int occurrences(String string, String substring) {
        //计数器
        int occurrences = 0;
        //小字符串的长度
        int length = substring.length();
        //不区分大小写
        final boolean ignoreCase = true;
        // abcd
        //   ab
        //对比几次
        for (int i = 0; i < string.length() - substring.length() + 1; i++) {
            //参数列表
            // 是否忽略大小写
            //从大字符串的第几位开始
            //要比较的小字符串
            //小字符串 开始比较的位置
            //比较的长度
            if (string.regionMatches(ignoreCase, i, substring, 0, length)) {
                occurrences++;
            }
        }
        return occurrences;
    }

    //将集合中的元素连接打印
    public static String concatenate(List<?> list) {//此处规定list中的元素为 任意类型
        StringBuilder builder = new StringBuilder();
        //但是这里你只能将他看出 object 因为可以看做任意类型的只能是object
        for (Object element : list) {
            builder.append(String.format("%s%n", element));
        }
        return builder.toString();
    }

    //此处规定list 为number的子类
    public static String concatenateNumbers(List<? extends Number> list, int decimalPlaces) {
        String decimalFormat = "%." + decimalPlaces + "f";
        StringBuilder builder = new StringBuilder();
        for (Number element : list) {
            double value = element.doubleValue();
            builder.append(String.format(decimalFormat + "%n", value));
        }
        return builder.toString();
    }
}
